# 1. 首先需要配置 Django 环境（关键！非 Django 视图/脚本中必须添加）
import os
import sys
import django
import logging

# 获取自定义日志器（与 settings.py 中的 'app' 对应）
logger = logging.getLogger('app')

# 添加项目根目录到 Python 路径
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 设置 Django 配置模块
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gupiao_ananlysis.settings')

# 初始化 Django
# django.setup()

# 在您的 views.py 或相关业务逻辑文件中
from future_history_app.models import AkCodeConfig


def read_futures_config(filter_by_pull=True):
    """
    使用 AkCodeConfig 模型读取期货配置信息
    """
    try:
        # 获取所有需要拉取数据的配置
        if filter_by_pull:
            configs = AkCodeConfig.objects.filter(is_pull=True)
        else:
            configs = AkCodeConfig.objects.all()

        # 转换为字典格式便于使用
        config_list = []
        for config in configs:
            # 创建一个简单的对象或字典来存储配置信息
            config_item = type('ConfigItem', (), {
                'ak_code': config.ak_code,
                'exchange': config.exchange,
                'breed': config.breed,
                'code': config.code,
                'code_complete': config.code_complete
            })
            config_list.append(config_item)

        return config_list
    except Exception as e:
        # 记录错误日志
        logger.error(f"读取期货配置时出错: {e}")
        return []
